package com.resys.server.component;

import com.resys.entity.dto.TokenCustomerDto;
import com.resys.entity.dto.TokenUserInfoDto;
import com.resys.redis.RedisUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import javax.validation.constraints.NotEmpty;
import java.util.UUID;
@Component("redisComponent")
public class RedisComponent {
    @Resource
    private RedisUtils redisUtils;
    public String saveCheckCode(String Code) {

        String checkCode = UUID.randomUUID().toString();
        redisUtils.setex("checkCode-"+checkCode, Code, 60000*5);
        return checkCode;
    }
    public String getCheckCode( String checkCodeKey) {
        return redisUtils.get("checkCode-"+checkCodeKey).toString();
    }

    public void deleteCheckCode(@NotEmpty String checkCodeKey) {
        redisUtils.delete("checkCode-"+checkCodeKey);
    }
    public void saveTokenInfo(TokenUserInfoDto tokenUserInfoDto,String role) {
        String token = UUID.randomUUID().toString();
        tokenUserInfoDto.setExpireAt(System.currentTimeMillis()+6000*60*24*7);
        tokenUserInfoDto.setToken(token);
        redisUtils.setex("token:"+role+token, tokenUserInfoDto, 6000*60*24*7);
    }
    public TokenUserInfoDto getTokenInfo(String token,String role) {

        return (TokenUserInfoDto) redisUtils.get("token:"+role + token);
    }

    public void deleteToken(String token,String role) {
        redisUtils.delete("token:"+role+token);
    }

    public void saveTokenInfo4Cilent(TokenCustomerDto tokenCustomerDto) {
        String token = UUID.randomUUID().toString();
        tokenCustomerDto.setExpireAt(System.currentTimeMillis()+6000*60*24*7);//设置过期时间
        tokenCustomerDto.setToken(token);
        redisUtils.setex("token:customer"+token, tokenCustomerDto, 6000*60*24*7);
    }

    public TokenCustomerDto getTokenInfo4Cilent(String token) {
        return (TokenCustomerDto) redisUtils.get("token:customer"+token);
    }

    public void deleteCilentToken() {
        redisUtils.deleteWithprefix("token:customer");
    }
}
